<?php

/**
 * Description of Provider
 *
 * @author prometheus
 */
class XQL_Connection_Provider extends x10_Provider
{
    public $xName = 'XQL adatbázis kapcsolat szolgáltató';
	
	/**
	 * @var XQL_Connection
	 */
	protected $connection;

	/**
	 * A kapcsolat beállításait tartalmazó objektum.
	 * @var Object
	 */
	protected $settings;

	/**
	 * Létre kell-e hozni az kapcsolat-objektumot?
	 * Értékét akkor kell TRUE-ra állítani, ha a connection nem egy objektumot,
	 * hanem egy osztálynevet tartalmaz. Konfigurációs állományban használatos
	 * az adatbázis kapcsolatok prototipizálásánál.
	 * @var Bool
	 */
	protected $connectionCreate = FALSE;

	public function __construct(x10_Config $config=NULL)
	{
		parent::__construct($config);

		$this->connection = $this->config->getConfigKey('connection');
		$this->connectionCreate = (bool)$this->config->getConfigKey('connectionCreate');
		$this->settings = (bool)$this->config->getConfigKey('settings');

		if ($this->connectionCreate and is_string($this->connection) and class_exists($this->connection))
		{
			$c = $this->connection;
			$this->connection = new $c($this->settings);
		}
	}

	/**
	 * @return XQL_Connection
	 */
	public function get()
	{
		return $this->connection;
	}

	public function __toString()
	{
		$result = $this->xName.': ';
		$result.= '"'.$this->connection->getAlias().'"';
		return $result;
	}
}
?>
